1. Field of the Invention
This invention relates generally to a print system and method for managing the printing of jobs on a network.
In particular, this invention is directed to a method of validating the receipt of print jobs submitted by one or more clients and the allocation of the jobs to the first available printer that is capable of printing the print job.
2. Description of the Related Art
As shown in FIG. 1, the basic conventional printing system 10 uses a client/server architecture that includes three primary components: a client 20, a server 40, and an output device 50. The client 20 conveys print and management requests to the server 40 and receives responses from the server 40 that arise in response to the submitted requests.
The server 40 receives these requests from the client 20, performs the required actions for each request, and returns the responses to the client 20. One such request from a client is a print request, i.e., a request to print one or more copies of one or more documents, with the printed pages output using one or more features. The features can include simplex or duplex printing, stapling or binding, and the like. Thus, a print request represents a collection of one or more documents to be printed, as well as instructions for printing. The server 40 organizes the documents indicated in the print request submitted by the client into a print job. The server then sends the print job and any associated job control commands to the output device 50.
The output device 50 is a physical device, or hardware, that is capable of rendering images of documents and producing hard copy output of the print jobs received from the server 40. The output device 50 can then return responses to the server 40 regarding its current state or the status of the received print jobs. The output device 50 is commonly a printer.
In conventional document printing systems, a user must specify the physical printer to be used to print a specific job or print a document. Therefore, the user must know the attributes of every available physical printer on the network in order to decide which printer would best print the desired document(s).
Once a print request is submitted by the user, the corresponding print job will wait until the specified printer is available for printing. If the specified printer has multiple print jobs waiting to be printed, there is no way for the conventional document printing system to re-direct one or more of the waiting print jobs to other available printers capable of printing one or more of those jobs. Additionally, if new printers are added to the network, each user must ascertain the capabilities of each new printer and the print address for each newly added printer, assuming the user even knows that new printers have been added. Thus, newly added printers can be available for quite some time without being used at their full capacity.
While the management of print jobs for the system shown in FIG. 1 is straightforward, other existing print systems are quite complicated. A more sophisticated print system exists, as described with reference to FIGS. 2 and 3. The more sophisticated print system addresses the situation where a user submits a print request to a single printer or a logical printer but the output can be generated by one of more physical printers. In this configuration, the user does not need to know the existence of every physical printer in the system. Also, a user does not want to submit a job to a printer if the request cannot be satisfied by the output device. In this case, the user will want the system to reject the request.
In this configuration, a logical printer represents the print characteristics of one of more physical printers. However, the representation of all of the associated physical printer characteristics through the logical printer may create an erroneous representation, because a print request may contain characteristics spread amongst the multiple printers but no single physical printer provides the entire support for the print request.
In this type of print system, there are two problems that need to be addressed. One of the issues is validating the acceptance of the print jobs submitted from the client, specifically, verifying that the print requirements of the print job are satisfied by the logical printer and determining if the job can be printed by one of the physical printers associated with the logical printer. The second issue that needs to be addressed is how the server may later determine which physical printer is capable of printing this print job. This second issue is referred to as job scheduling. To complicate matters, all the physical printers connected to the printing system may have multiple, and dynamically varying, capabilities. As a result, determining whether the print system will accept the print job and later determining which physical printer may print the job are complicated problems. This invention solves these two problems, as will be discussed later.
For convenience and understanding, the following definitions are provided. It can be appreciated that the term spooler refers to an entity where jobs are received from the client, and where job validation, scheduling, and management occurs. A supervisor is an entity where jobs are received from the spooler and sent to the output devices such as printers. A logical printer is a representation of the characteristics of one or more associated physical printers. A physical printer is a representation of the output device. A queue serves as a holding tank for submitted jobs. A queue also contains the association between the logical printers and the associated physical printers. Finally, a client is an entity from which jobs are submitted. Attributes is a term that is used synonymously to reference the characteristics of print jobs, documents, logical printers, and physical printers.
This invention provides a print system apparatus and method for efficiently distributing printing functions in a networked computing environment.
The printing system of the invention includes one or more clients, where each client can submit print requests; a server that receives the print requests, extracts the printing requirements of the print requests (e.g. stapling, two sided printing, 8.5xc3x9711 sheets), generates print jobs from the print requests, and stores the print job requirements in a database; a database that contains attributes of the logical printers, attributes of the physical printers of a network, and attributes of the print jobs; a queue that stores print jobs that are printable on at least one network printer; and at least one printer that notifies the server when it is idle or ready to print another print job.
The method of this invention resolves the handling of print requests during the job acceptance phase and the job scheduling phase. The job acceptance phase includes receiving print requests from the requester, extracting print requirements as attributes, generating print jobs from the print requests and storing the print job attributes into a database, generating a database query based on the print job attributes, and using the query to determine whether the print job is printable by one or more of the associated physical printers. Once the job is accepted, it is stored in a queue, and a database query based on a waiting physical printer""s attributes for each waiting printer is generated to determine if the job can be printed on one of the waiting printers. Also when a physical printer requests a job to print, a database query based on the attributes of the waiting physical printer is generated and used to determine which available print jobs are printable on the available printer. One of the printable print jobs is then submitted to the waiting physical printer. The previous two descriptions are actions done during the job scheduling phase.
These and other features and advantages of this invention are described in or apparent from the following detailed description of the preferred embodiments.